﻿using System.ComponentModel.DataAnnotations;

namespace EMC.VISITOR.Application;

    /// <summary>
    /// 訪客黑名單基础输入参数
    /// </summary>
    public partial class VistLogBlackBaseInput
    {
        /// <summary>
        /// 黑名单姓名
        /// </summary>
        public virtual string? Name { get; set; }
        
        /// <summary>
        /// 黑名单证件号
        /// </summary>
        public virtual string? IdCard { get; set; }
        
        /// <summary>
        /// 证件照片
        /// </summary>
        public virtual string? IdCardImg { get; set; }
        
          public virtual List<string?> CompanyList { get; set; }
        /// <summary>
        /// Flow系统公司名称
        /// </summary>
        public virtual string? Company { get; set; }
        
        /// <summary>
        /// 限制开始时间
        /// </summary>
        public virtual DateTime? StartTime { get; set; }
        
        /// <summary>
        /// 限制结束时间
        /// </summary>
        public virtual DateTime? EndTime { get; set; }
        
        /// <summary>
        /// 是否启用
        /// </summary>
        public virtual bool? IsEnabled { get; set; }
        
        /// <summary>
        /// 备注
        /// </summary>
        public virtual string? Remark { get; set; }
        
        /// <summary>
        /// 创建时间
        /// </summary>
        public virtual DateTime? CreateTime { get; set; }
        
        /// <summary>
        /// 更新时间
        /// </summary>
        public virtual DateTime? UpdateTime { get; set; }
        
          public virtual List<long?> CreateUserIdList { get; set; }
        /// <summary>
        /// 创建人
        /// </summary>
        public virtual long? CreateUserId { get; set; }
        
          public virtual List<long?> UpdateUserIdList { get; set; }
        /// <summary>
        /// 修改人
        /// </summary>
        public virtual long? UpdateUserId { get; set; }
        
    }

    /// <summary>
    /// 訪客黑名單分页查询输入参数
    /// </summary>
    public partial class VistLogBlackInput : BasePageInput
    {
        /// <summary>
        /// 关键字查询
        /// </summary>
        public string SearchKey { get; set; }

            /// <summary>
            /// 黑名单姓名
            /// </summary>
            public string? Name { get; set; }
            
            /// <summary>
            /// 黑名单证件号
            /// </summary>
            public string? IdCard { get; set; }
            
            public virtual List<string?> CompanyList { get; set; }
            /// <summary>
            /// Flow系统公司名称
            /// </summary>
            public string? Company { get; set; }
            
            /// <summary>
            /// 限制开始时间
            /// </summary>
            public DateTime? StartTime { get; set; }
            
        /// <summary>
         /// 限制开始时间范围
         /// </summary>
         public List<DateTime?> StartTimeRange { get; set; } 
            /// <summary>
            /// 限制结束时间
            /// </summary>
            public DateTime? EndTime { get; set; }
            
        /// <summary>
         /// 限制结束时间范围
         /// </summary>
         public List<DateTime?> EndTimeRange { get; set; } 
            /// <summary>
            /// 是否启用
            /// </summary>
            public bool? IsEnabled { get; set; }
            
    }

    /// <summary>
    /// 訪客黑名單增加输入参数
    /// </summary>
    public partial class AddVistLogBlackInput : VistLogBlackBaseInput
    {
        /// <summary>
        /// 黑名单姓名
        /// </summary>
        [Required(ErrorMessage = "黑名单姓名不能为空")]
        public override string? Name { get; set; }
        
        /// <summary>
        /// 黑名单证件号
        /// </summary>
        [Required(ErrorMessage = "黑名单证件号不能为空")]
        public override string? IdCard { get; set; }
        
    }

    /// <summary>
    /// 訪客黑名單删除输入参数
    /// </summary>
    public partial class DeleteVistLogBlackInput : BaseIdInput
    {
    }

    /// <summary>
    /// 訪客黑名單更新输入参数
    /// </summary>
    public partial class UpdateVistLogBlackInput : VistLogBlackBaseInput
    {
        /// <summary>
        /// Id
        /// </summary>
        [Required(ErrorMessage = "Id不能为空")]
        public long? Id { get; set; }
        
    }

    /// <summary>
    /// 訪客黑名單主键查询输入参数
    /// </summary>
    public partial class QueryByIdVistLogBlackInput : DeleteVistLogBlackInput
    {

    }
